1. Field of the Invention
The present invention relates to the storage of digital data. More particularly, the invention concerns a method and apparatus for allocating storage space to accommodate a data storage request, where the amount of storage space to be allocated is determined adaptively in consideration of past data storage requests.
2. Description of the Related Art
The electronic management of data is central in this information era. Scientists and engineers have provided the necessary infrastructure for widespread public availability of an incredible volume of information. The internet is one chief example. In addition, the high-tech industry is continually achieving faster and more diverse methods for transmitting and receiving data. Some examples include satellite communications and the ever-increasing baud rates of commercially available computer modems.
With this information explosion, it is increasingly important for users to have some means for storing and conveniently managing their data. In this respect, the development of electronic data storage systems is more important than ever. And, engineers have squarely met the persistent challenge of customer demand by providing speedier and more reliable storage systems.
As an example, engineers at INTERNATIONAL BUSINESS MACHINES.RTM. (IBM.RTM.) have developed various flexible systems called "storage management servers", designed to store and manage data for remotely located clients. One particular system is called the ADSTAR.TM. Distributed Storage Manager (ADSM.TM.) product. With the ADSM product, a central server is coupled to multiple client platforms and one or more administrators. The server provides archival, backup, retrieval, and other management functions for the server's clients.
Although the ADSM product includes some significant advances and also enjoys significant commercial success today, IBM has continually sought to improve the performance and efficiency of this and other data storage systems. One area of particular focus is the "allocation" of storage space for data to be stored by the server. Space "allocation" involves reserving storage space for an expected storage event, to the exclusion of other data received by the server.
Accurate space allocation is important because over-allocation may frustrate or delay other, unrelated data storage operations. Namely, the allocated storage space is not available for other processes until it is relinquished by the originally allocating process. Furthermore, under-allocation is dangerous because it may result in the failed storage of the incoming data. In this case, efficiency is lost since the time originally spent allocating and attempting storage is wasted, and the operation must be performed again in a different manner. Both under and over-allocation are also undesirable because they make it difficult to place data in the most appropriate device type of a multi-level storage hierarchy.
Accurate space allocation, then, is extremely important. However, space allocation is especially challenging when the data does not have any prespecified size. This condition may arise under many circumstances. For example, the incoming data may comprise a stream of data with an unpredictable size. As another example, data may be grouped for storage according to a "commit transaction", establishing a data group of unknown size. Still another example is the grouping of data for purposes of aggregation, as discussed in copending U.S. patent application Ser. No. 08/960,423, entitled "STORAGE MANAGEMENT SYSTEM WITH FILE AGGREGATION", assigned to IBM and filed together with the present application in the names of Cannon et al.
Accurate space allocation, then, is especially difficult when data received for storage does not have any prespecified size. In this case, a speculative allocation of storage space could vary wildly from the actual size of the data, giving rise to various predicaments, such as those explained above.